package mymap.web.beans;

import mymap.utils.map.GMapUtil;
import geo.google.datamodel.GeoAddress;


public class MapBean {
	
	private String endereco;
	private String tipoImagem;
	private Integer zoom;
	private GeoAddress geoAddress;
	private LatLonBox latLonBox;
	
	
	public MapBean() {	}
	
	
	public String getEndereco() {
		return endereco;
	}
	public void setEndereco(String cidade) {
		this.endereco = cidade;
	}
	public String getTipoImagem() {
		return tipoImagem;
	}
	public void setTipoImagem(String tipoImagem) {
		this.tipoImagem = tipoImagem;
	}
	public Integer getZoom() {
		return zoom;
	}
	public void setZoom(Integer zoom) {
		this.zoom = zoom;
	}


	public GeoAddress getGeoAddress() {
		return geoAddress;
	}


	public void setGeoAddress(GeoAddress geoAddress) {
		this.geoAddress = geoAddress;
	}


	public LatLonBox getLatLonBox() {
		return latLonBox;
	}


	public void setLatLonBox(LatLonBox latLonBox) {
		this.latLonBox = latLonBox;
	}
	
	public Integer getWidth(){
		return getLatLonBox().getWidth(getZoom());
	}

	public Integer getHeigt(){
		return getLatLonBox().getHeigt(getZoom());
	}
	
	/**
	 * Retorna um LatLongBox de acordo com o centro da imagem.
	 * É possível especificar o tamanho do mapa. :-)
	 * * TAMANHO ESTA FIXO EM 1536*
	 * @return
	 */
	public LatLonBox getFakeLatLonBox(){
		
		int MAP_SIZE = 1536/2; //pixels
		
		double lat = getGeoAddress().getCoordinate().getLatitude();
		double lng = getGeoAddress().getCoordinate().getLongitude();
		
		LatLonBox latLonBox = new LatLonBox();
		latLonBox.setNorth(GMapUtil.toLatitude(lat, - MAP_SIZE, getZoom()));
		latLonBox.setSouth(GMapUtil.toLatitude(lat, MAP_SIZE, getZoom()));
		latLonBox.setWest(GMapUtil.toLongitude(lng, - MAP_SIZE, getZoom()));
		latLonBox.setEast(GMapUtil.toLongitude(lng, MAP_SIZE, getZoom()));
		
		return latLonBox;
	}
}
